Function useTokenManager

  • Type Parameters

    • T extends "ETH" | "ERC20" | "ERC721" | "ERC1155"

    Parameters

    • __namedParameters: TokenTypeProps<T>

    Returns {
        abi?: {
            COMMUNITY_LOCKER: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "bytes32";
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "user";
                    type: "address";
                }];
                name: "ActivateUser";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "constantHash";
                    type: "bytes32";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "previousValue";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "newValue";
                    type: "uint256";
                }];
                name: "ConstantUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "bytes32";
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "user";
                    type: "address";
                }];
                name: "LockUser";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "CONSTANT_SETTER_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "activeUsers";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "receiver";
                    type: "address";
                }];
                name: "checkAllowedToSendMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "communityPool";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "gasPriceTimestamp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newSchainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newTokenManagerLinker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newCommunityPool";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "initializeTimestamp";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "lastMessageTimeStamp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "lastMessageTimeStampToSchain";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "mainnetGasPrice";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "fromChainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "schainHash";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "gasPrice";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "timestamp";
                    type: "uint256";
                }, {
                    components: readonly [{
                        internalType: "uint256[2]";
                        name: "blsSignature";
                        type: "uint256[2]";
                    }, {
                        internalType: "uint256";
                        name: "hashA";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "hashB";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "counter";
                        type: "uint256";
                    }];
                    internalType: "struct IMessageProxy.Signature";
                    name: "";
                    type: "tuple";
                }];
                name: "setGasPrice";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "chainName";
                    type: "string";
                }, {
                    internalType: "uint256";
                    name: "newTimeLimitPerMessage";
                    type: "uint256";
                }];
                name: "setTimeLimitPerMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                name: "timeLimitPerMessage";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "tokenManagerLinker";
                outputs: readonly [{
                    internalType: "contract ITokenManagerLinker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }];
            CONFIG_CONTROLLER: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEPLOYER_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEPLOYER_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MTM_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "addr";
                    type: "address";
                }];
                name: "addToWhitelist";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableFreeContractDeployment";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableMTM";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableFreeContractDeployment";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableMTM";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "addr";
                    type: "address";
                }];
                name: "isAddressWhitelisted";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "isFCDEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "isMTMEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "addr";
                    type: "address";
                }];
                name: "removeFromWhitelist";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "_version";
                    type: "string";
                }];
                name: "setVersion";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "version";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }];
            DEPOSIT_BOX_ERC1155: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    name: "schainName";
                    type: "string";
                }, {
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }];
                name: "ERC1155TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    name: "ids";
                    type: "uint256[]";
                }, {
                    indexed: false;
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "ERC1155TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEPOSIT_BOX_MANAGER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "LINKER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc1155OnMainnet";
                    type: "address";
                }];
                name: "addERC1155TokenByOwner";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "contractReceiver";
                    type: "address";
                }];
                name: "addSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "contractManagerOfSkaleManager";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    name: "id";
                    type: "uint256";
                }, {
                    name: "amount";
                    type: "uint256";
                }];
                name: "depositERC1155";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    name: "ids";
                    type: "uint256[]";
                }, {
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "depositERC1155Batch";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "enableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "gasPayer";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    name: "receiver";
                    type: "address";
                }, {
                    name: "ids";
                    type: "uint256[]";
                }, {
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "getFunds";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "from";
                    type: "uint256";
                }, {
                    name: "to";
                    type: "uint256";
                }];
                name: "getSchainToAllERC1155";
                outputs: readonly [{
                    name: "tokensInRange";
                    type: "address[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "getSchainToAllERC1155Length";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc1155OnMainnet";
                    type: "address";
                }];
                name: "getSchainToERC1155";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchainContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "newMessageProxy";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "linkerValue";
                    type: "address";
                }, {
                    name: "messageProxyValue";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newContractManagerOfSkaleManager";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "tokens";
                    type: "address[]";
                }];
                name: "initializeAllTokensForSchain";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "sender";
                    type: "address";
                }, {
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isSchainOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "isWhitelisted";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "linker";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "operator";
                    type: "address";
                }, {
                    name: "";
                    type: "address";
                }, {
                    name: "";
                    type: "uint256[]";
                }, {
                    name: "";
                    type: "uint256[]";
                }, {
                    name: "";
                    type: "bytes";
                }];
                name: "onERC1155BatchReceived";
                outputs: readonly [{
                    name: "";
                    type: "bytes4";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "operator";
                    type: "address";
                }, {
                    name: "";
                    type: "address";
                }, {
                    name: "";
                    type: "uint256";
                }, {
                    name: "";
                    type: "uint256";
                }, {
                    name: "";
                    type: "bytes";
                }];
                name: "onERC1155Received";
                outputs: readonly [{
                    name: "";
                    type: "bytes4";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "removeSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "schainLinks";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }, {
                    name: "";
                    type: "address";
                }, {
                    name: "";
                    type: "uint256";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }];
            DEPOSIT_BOX_ERC20: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    name: "schainName";
                    type: "string";
                }, {
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }];
                name: "ERC20TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    name: "amount";
                    type: "uint256";
                }];
                name: "ERC20TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEPOSIT_BOX_MANAGER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "LINKER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc20OnMainnet";
                    type: "address";
                }];
                name: "addERC20TokenByOwner";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "contractReceiver";
                    type: "address";
                }];
                name: "addSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "contractManagerOfSkaleManager";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc20OnMainnet";
                    type: "address";
                }, {
                    name: "amount";
                    type: "uint256";
                }];
                name: "depositERC20";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "enableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "gasPayer";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc20OnMainnet";
                    type: "address";
                }, {
                    name: "receiver";
                    type: "address";
                }, {
                    name: "amount";
                    type: "uint256";
                }];
                name: "getFunds";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "from";
                    type: "uint256";
                }, {
                    name: "to";
                    type: "uint256";
                }];
                name: "getSchainToAllERC20";
                outputs: readonly [{
                    name: "tokensInRange";
                    type: "address[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "getSchainToAllERC20Length";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc20OnMainnet";
                    type: "address";
                }];
                name: "getSchainToERC20";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchainContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "newMessageProxy";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "linkerValue";
                    type: "address";
                }, {
                    name: "messageProxyValue";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newContractManagerOfSkaleManager";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "tokens";
                    type: "address[]";
                }];
                name: "initializeAllTokensForSchain";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "sender";
                    type: "address";
                }, {
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isSchainOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "isWhitelisted";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "linker";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "removeSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "schainLinks";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }, {
                    name: "";
                    type: "address";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }];
            DEPOSIT_BOX_ERC721: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    name: "schainName";
                    type: "string";
                }, {
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }];
                name: "ERC721TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "ERC721TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEPOSIT_BOX_MANAGER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "LINKER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc721OnMainnet";
                    type: "address";
                }];
                name: "addERC721TokenByOwner";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "contractReceiver";
                    type: "address";
                }];
                name: "addSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "contractManagerOfSkaleManager";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc721OnMainnet";
                    type: "address";
                }, {
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "depositERC721";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "enableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "gasPayer";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc721OnMainnet";
                    type: "address";
                }, {
                    name: "receiver";
                    type: "address";
                }, {
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "getFunds";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "from";
                    type: "uint256";
                }, {
                    name: "to";
                    type: "uint256";
                }];
                name: "getSchainToAllERC721";
                outputs: readonly [{
                    name: "tokensInRange";
                    type: "address[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "getSchainToAllERC721Length";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc721OnMainnet";
                    type: "address";
                }];
                name: "getSchainToERC721";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchainContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "newMessageProxy";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "linkerValue";
                    type: "address";
                }, {
                    name: "messageProxyValue";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newContractManagerOfSkaleManager";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "tokens";
                    type: "address[]";
                }];
                name: "initializeAllTokensForSchain";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "sender";
                    type: "address";
                }, {
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isSchainOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "isWhitelisted";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "linker";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "removeSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "schainLinks";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "address";
                }, {
                    name: "";
                    type: "uint256";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }];
            DEPOSIT_BOX_ERC721_WITH_METADATA: readonly [];
            DEPOSIT_BOX_ETH: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    indexed: false;
                    name: "active";
                    type: "bool";
                }];
                name: "ActiveEthTransfers";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEPOSIT_BOX_MANAGER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "LINKER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "activeEthTransfers";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "contractReceiver";
                    type: "address";
                }];
                name: "addSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "address";
                }];
                name: "approveTransfers";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "contractManagerOfSkaleManager";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "deposit";
                outputs: readonly [];
                payable: true;
                stateMutability: "payable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disableActiveEthTransfers";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "enableActiveEthTransfers";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "enableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "gasPayer";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "receiver";
                    type: "address";
                }, {
                    name: "amount";
                    type: "uint256";
                }];
                name: "getFunds";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [];
                name: "getMyEth";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchainContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "newMessageProxy";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "linkerValue";
                    type: "address";
                }, {
                    name: "messageProxyValue";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newContractManagerOfSkaleManager";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "sender";
                    type: "address";
                }, {
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isSchainOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "isWhitelisted";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "linker";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "removeSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "schainLinks";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }];
            LINKER: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "LINKER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "contractReceiver";
                    type: "address";
                }];
                name: "addSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "schainContracts";
                    type: "address[]";
                }];
                name: "connectSchain";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "contractManagerOfSkaleManager";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disconnectSchain";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "mainnetContract";
                    type: "address";
                }];
                name: "hasMainnetContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchain";
                outputs: readonly [{
                    name: "connected";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchainContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "messageProxyValue";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newContractManagerOfSkaleManager";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isNotKilled";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "sender";
                    type: "address";
                }, {
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isSchainOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "kill";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newMainnetContract";
                    type: "address";
                }];
                name: "registerMainnetContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "mainnetContract";
                    type: "address";
                }];
                name: "removeMainnetContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "removeSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "schainLinks";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "statuses";
                outputs: readonly [{
                    name: "";
                    type: "uint8";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }];
            MARIONETTE: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "EtherReceived";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "receiver";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "EtherSent";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "bytes";
                    name: "output";
                    type: "bytes";
                }];
                name: "FunctionCallResult";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "ACCESS_VIOLATION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "IMA_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "PUPPETEER_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "receiver";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "encodeFunctionCall";
                outputs: readonly [{
                    internalType: "bytes";
                    name: "";
                    type: "bytes";
                }];
                stateMutability: "pure";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "target";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [{
                    internalType: "bytes";
                    name: "";
                    type: "bytes";
                }];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "owner";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "ima";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "target";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "sendSFuel";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }];
            MULTISIG_WALLET: readonly [{
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                name: "owners";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "owner";
                    type: "address";
                }];
                name: "removeOwner";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "revokeConfirmation";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "address";
                }];
                name: "isOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "uint256";
                }, {
                    name: "";
                    type: "address";
                }];
                name: "confirmations";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "calcMaxWithdraw";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "pending";
                    type: "bool";
                }, {
                    name: "executed";
                    type: "bool";
                }];
                name: "getTransactionCount";
                outputs: readonly [{
                    name: "count";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "dailyLimit";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "lastDay";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "owner";
                    type: "address";
                }];
                name: "addOwner";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "isConfirmed";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "getConfirmationCount";
                outputs: readonly [{
                    name: "count";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                name: "transactions";
                outputs: readonly [{
                    name: "destination";
                    type: "address";
                }, {
                    name: "value";
                    type: "uint256";
                }, {
                    name: "data";
                    type: "bytes";
                }, {
                    name: "executed";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "getOwners";
                outputs: readonly [{
                    name: "";
                    type: "address[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "from";
                    type: "uint256";
                }, {
                    name: "to";
                    type: "uint256";
                }, {
                    name: "pending";
                    type: "bool";
                }, {
                    name: "executed";
                    type: "bool";
                }];
                name: "getTransactionIds";
                outputs: readonly [{
                    name: "_transactionIds";
                    type: "uint256[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "getConfirmations";
                outputs: readonly [{
                    name: "_confirmations";
                    type: "address[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "transactionCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "_required";
                    type: "uint256";
                }];
                name: "changeRequirement";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "confirmTransaction";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "destination";
                    type: "address";
                }, {
                    name: "value";
                    type: "uint256";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "submitTransaction";
                outputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "_dailyLimit";
                    type: "uint256";
                }];
                name: "changeDailyLimit";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "MAX_OWNER_COUNT";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "required";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "owner";
                    type: "address";
                }, {
                    name: "newOwner";
                    type: "address";
                }];
                name: "replaceOwner";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "executeTransaction";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "spentToday";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    name: "_owners";
                    type: "address[]";
                }, {
                    name: "_required";
                    type: "uint256";
                }, {
                    name: "_dailyLimit";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                payable: true;
                stateMutability: "payable";
                type: "fallback";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    name: "dailyLimit";
                    type: "uint256";
                }];
                name: "DailyLimitChange";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "Confirmation";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "Revocation";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "Submission";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "Execution";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "sender";
                    type: "address";
                }, {
                    indexed: false;
                    name: "value";
                    type: "uint256";
                }];
                name: "Deposit";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "owner";
                    type: "address";
                }];
                name: "OwnerAddition";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "owner";
                    type: "address";
                }];
                name: "OwnerRemoval";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    name: "required";
                    type: "uint256";
                }];
                name: "RequirementChange";
                type: "event";
            }];
            TOKEN_MANAGER_ERC1155: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "oldValue";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "newValue";
                    type: "address";
                }];
                name: "DepositBoxWasChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnSchain";
                    type: "address";
                }];
                name: "ERC1155TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnSchain";
                    type: "address";
                }];
                name: "ERC1155TokenCreated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256[]";
                    name: "ids";
                    type: "uint256[]";
                }, {
                    indexed: false;
                    internalType: "uint256[]";
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "ERC1155TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnSchain";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256[]";
                    name: "ids";
                    type: "uint256[]";
                }, {
                    indexed: false;
                    internalType: "uint256[]";
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "ERC1155TokenReceived";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "AUTOMATIC_DEPLOY_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "TOKEN_REGISTRAR_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetChainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "erc1155OnSchain";
                    type: "address";
                }];
                name: "addERC1155TokenByOwner";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "newTokenManager";
                    type: "address";
                }];
                name: "addTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract ERC1155OnChain";
                    name: "";
                    type: "address";
                }];
                name: "addedClones";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "automaticDeploy";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "changeDepositBoxAddress";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "clonesErc1155";
                outputs: readonly [{
                    internalType: "contract ERC1155OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "communityLocker";
                outputs: readonly [{
                    internalType: "contract ICommunityLocker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "depositBox";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "deprecatedClonesErc1155";
                outputs: readonly [{
                    internalType: "contract ERC1155OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "id";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "exitToMainERC1155";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256[]";
                    name: "ids";
                    type: "uint256[]";
                }, {
                    internalType: "uint256[]";
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "exitToMainERC1155Batch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "hasTokenManager";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newChainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newSchainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initializeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "operator";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }, {
                    internalType: "uint256[]";
                    name: "";
                    type: "uint256[]";
                }, {
                    internalType: "uint256[]";
                    name: "";
                    type: "uint256[]";
                }, {
                    internalType: "bytes";
                    name: "";
                    type: "bytes";
                }];
                name: "onERC1155BatchReceived";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "operator";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "";
                    type: "bytes";
                }];
                name: "onERC1155Received";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "fromChainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "removeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "schainHash";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "tokenManagerLinker";
                outputs: readonly [{
                    internalType: "contract ITokenManagerLinker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                name: "tokenManagers";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetSchainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "id";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "transferToSchainERC1155";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetSchainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256[]";
                    name: "ids";
                    type: "uint256[]";
                }, {
                    internalType: "uint256[]";
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "transferToSchainERC1155Batch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }];
            TOKEN_MANAGER_ERC20: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "oldValue";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "newValue";
                    type: "address";
                }];
                name: "DepositBoxWasChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnSchain";
                    type: "address";
                }];
                name: "ERC20TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnSchain";
                    type: "address";
                }];
                name: "ERC20TokenCreated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "ERC20TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnSchain";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "ERC20TokenReceived";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "AUTOMATIC_DEPLOY_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "TOKEN_REGISTRAR_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetChainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "erc20OnMainChain";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "erc20OnSchain";
                    type: "address";
                }];
                name: "addERC20TokenByOwner";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "newTokenManager";
                    type: "address";
                }];
                name: "addTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract ERC20OnChain";
                    name: "";
                    type: "address";
                }];
                name: "addedClones";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "automaticDeploy";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "changeDepositBoxAddress";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "clonesErc20";
                outputs: readonly [{
                    internalType: "contract ERC20OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "communityLocker";
                outputs: readonly [{
                    internalType: "contract ICommunityLocker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "depositBox";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "deprecatedClonesErc20";
                outputs: readonly [{
                    internalType: "contract ERC20OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "exitToMainERC20";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "hasTokenManager";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newChainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newSchainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initializeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "fromChainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "removeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "schainHash";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "tokenManagerLinker";
                outputs: readonly [{
                    internalType: "contract ITokenManagerLinker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                name: "tokenManagers";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract IERC20Upgradeable";
                    name: "";
                    type: "address";
                }];
                name: "totalSupplyOnMainnet";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetSchainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "transferToSchainERC20";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }];
            TOKEN_MANAGER_ERC721: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "oldValue";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "newValue";
                    type: "address";
                }];
                name: "DepositBoxWasChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnSchain";
                    type: "address";
                }];
                name: "ERC721TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnSchain";
                    type: "address";
                }];
                name: "ERC721TokenCreated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "ERC721TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnSchain";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "ERC721TokenReceived";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "AUTOMATIC_DEPLOY_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "TOKEN_REGISTRAR_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetChainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "erc721OnMainChain";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "erc721OnSchain";
                    type: "address";
                }];
                name: "addERC721TokenByOwner";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "newTokenManager";
                    type: "address";
                }];
                name: "addTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract ERC721OnChain";
                    name: "";
                    type: "address";
                }];
                name: "addedClones";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "automaticDeploy";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "changeDepositBoxAddress";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "clonesErc721";
                outputs: readonly [{
                    internalType: "contract ERC721OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "communityLocker";
                outputs: readonly [{
                    internalType: "contract ICommunityLocker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "depositBox";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "deprecatedClonesErc721";
                outputs: readonly [{
                    internalType: "contract ERC721OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "exitToMainERC721";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "hasTokenManager";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newChainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newSchainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initializeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "fromChainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "removeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "schainHash";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "tokenManagerLinker";
                outputs: readonly [{
                    internalType: "contract ITokenManagerLinker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                name: "tokenManagers";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetSchainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "transferToSchainERC721";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }];
            TOKEN_MANAGER_ETH: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "oldValue";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "newValue";
                    type: "address";
                }];
                name: "DepositBoxWasChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "AUTOMATIC_DEPLOY_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "TOKEN_REGISTRAR_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "newTokenManager";
                    type: "address";
                }];
                name: "addTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "automaticDeploy";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "changeDepositBoxAddress";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "communityLocker";
                outputs: readonly [{
                    internalType: "contract ICommunityLocker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "depositBox";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ethErc20";
                outputs: readonly [{
                    internalType: "contract IEthErc20";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "exitToMain";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "hasTokenManager";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newChainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }, {
                    internalType: "contract IEthErc20";
                    name: "ethErc20Address";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newSchainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initializeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "fromChainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "removeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "schainHash";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract IEthErc20";
                    name: "newEthErc20Address";
                    type: "address";
                }];
                name: "setEthErc20Address";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "tokenManagerLinker";
                outputs: readonly [{
                    internalType: "contract ITokenManagerLinker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                name: "tokenManagers";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }];
            TOKEN_MANAGER_LINKER: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "REGISTRAR_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "connectSchain";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "disconnectSchain";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchain";
                outputs: readonly [{
                    internalType: "bool";
                    name: "connected";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "tokenManager";
                    type: "address";
                }];
                name: "hasTokenManager";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxyAddress";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "linker";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "linkerAddress";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract ITokenManager";
                    name: "newTokenManager";
                    type: "address";
                }];
                name: "registerTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract ITokenManager";
                    name: "tokenManagerAddress";
                    type: "address";
                }];
                name: "removeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "tokenManagers";
                outputs: readonly [{
                    internalType: "contract ITokenManager";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }];
        }[`TOKEN_MANAGER_${T}`];
        address?: {
            COMMUNITY_LOCKER: {
                address: "0xD2aaa00300000000000000000000000000000000";
                key: string;
                name: string;
                network: "skale";
                type: "sudo";
            };
            COMMUNITY_POOL: {
                address: "0xb2BadB7f28075CB2C8BDBd730204750Db4C03f98";
                key: string;
                name: string;
                network: "skale";
                type: "sudo";
            };
            CONFIG_CONTROLLER: {
                address: "0xD2002000000000000000000000000000000000D2";
                key: "schain:config_controller";
                name: "ConfigController";
                network: "skale";
                type: "sudo";
            };
            DEPOSIT_BOX_ERC1155: {
                address: "0xa0EF1521f56641F9E0E43c46E0F6B20715E454c8";
                key: string;
                name: string;
                network: "ethereum";
                type: "ima:bridge";
            };
            DEPOSIT_BOX_ERC20: {
                address: "0xb3bf0c62f0924e5C8fdae9815355eA98Fba33C8E";
                key: string;
                name: string;
                network: "ethereum";
                type: "ima:bridge";
            };
            DEPOSIT_BOX_ERC721: {
                address: "0x98937f91885dcCfF8082623a157296AA161a9917";
                key: string;
                name: string;
                network: "ethereum";
                type: "ima:bridge";
            };
            DEPOSIT_BOX_ERC721_WITH_METADATA: {
                address: "0x4B85DD7d995D6ae445292939d7ebfabD7Cd088dA";
                key: string;
                name: string;
                network: "ethereum";
                type: "ima:bridge";
            };
            DEPOSIT_BOX_ETH: {
                address: "0x9910cF6ba22915C5afCe8b682f7c09d1c001FA59";
                key: string;
                name: string;
                network: "ethereum";
                type: "ima:bridge";
            };
            LINKER: {
                address: "0xEa870bEF8cc1Ca6871AE960266ea0fDbCF06371d";
                key: string;
                name: string;
                network: "ethereum";
                type: "ima:bridge";
            };
            MARIONETTE: {
                address: "0xD2c0DeFACe000000000000000000000000000000";
                key: string;
                name: string;
                network: "skale";
                type: "sudo";
            };
            MULTISIG_WALLET: {
                address: "0xD244519000000000000000000000000000000000";
                key: string;
                name: string;
                network: "skale";
                type: "sudo";
            };
            TOKEN_MANAGER_ERC1155: {
                address: "0xD2aaA00900000000000000000000000000000000";
                key: string;
                name: string;
                network: "skale";
                type: "ima:bridge";
            };
            TOKEN_MANAGER_ERC20: {
                address: "0xD2aAA00500000000000000000000000000000000";
                key: string;
                name: string;
                network: "skale";
                type: "ima:bridge";
            };
            TOKEN_MANAGER_ERC721: {
                address: "0xD2aaa00600000000000000000000000000000000";
                key: string;
                name: string;
                network: "skale";
                type: "ima:bridge";
            };
            TOKEN_MANAGER_ETH: {
                address: "0xd2AaA00400000000000000000000000000000000";
                key: string;
                name: string;
                network: "skale";
                type: "ima:bridge";
            };
            TOKEN_MANAGER_LINKER: {
                address: "0xD2aAA00800000000000000000000000000000000";
                key: string;
                name: string;
                network: "skale";
                type: "ima:bridge";
            };
        }[`TOKEN_MANAGER_${T}`]["address"];
        contract?: null | GetContractResult<{
            COMMUNITY_LOCKER: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "bytes32";
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "user";
                    type: "address";
                }];
                name: "ActivateUser";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "constantHash";
                    type: "bytes32";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "previousValue";
                    type: "uint256";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "newValue";
                    type: "uint256";
                }];
                name: "ConstantUpdated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "bytes32";
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "user";
                    type: "address";
                }];
                name: "LockUser";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "CONSTANT_SETTER_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "activeUsers";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "receiver";
                    type: "address";
                }];
                name: "checkAllowedToSendMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "communityPool";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "gasPriceTimestamp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newSchainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newTokenManagerLinker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newCommunityPool";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "initializeTimestamp";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "lastMessageTimeStamp";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "lastMessageTimeStampToSchain";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "mainnetGasPrice";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "fromChainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "schainHash";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "gasPrice";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "timestamp";
                    type: "uint256";
                }, {
                    components: readonly [{
                        internalType: "uint256[2]";
                        name: "blsSignature";
                        type: "uint256[2]";
                    }, {
                        internalType: "uint256";
                        name: "hashA";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "hashB";
                        type: "uint256";
                    }, {
                        internalType: "uint256";
                        name: "counter";
                        type: "uint256";
                    }];
                    internalType: "struct IMessageProxy.Signature";
                    name: "";
                    type: "tuple";
                }];
                name: "setGasPrice";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "chainName";
                    type: "string";
                }, {
                    internalType: "uint256";
                    name: "newTimeLimitPerMessage";
                    type: "uint256";
                }];
                name: "setTimeLimitPerMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                name: "timeLimitPerMessage";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "tokenManagerLinker";
                outputs: readonly [{
                    internalType: "contract ITokenManagerLinker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }];
            CONFIG_CONTROLLER: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEPLOYER_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEPLOYER_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MTM_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "addr";
                    type: "address";
                }];
                name: "addToWhitelist";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableFreeContractDeployment";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableMTM";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableFreeContractDeployment";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableMTM";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "addr";
                    type: "address";
                }];
                name: "isAddressWhitelisted";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "isFCDEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "isMTMEnabled";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "addr";
                    type: "address";
                }];
                name: "removeFromWhitelist";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "_version";
                    type: "string";
                }];
                name: "setVersion";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "version";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }];
            DEPOSIT_BOX_ERC1155: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    name: "schainName";
                    type: "string";
                }, {
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }];
                name: "ERC1155TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    name: "ids";
                    type: "uint256[]";
                }, {
                    indexed: false;
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "ERC1155TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEPOSIT_BOX_MANAGER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "LINKER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc1155OnMainnet";
                    type: "address";
                }];
                name: "addERC1155TokenByOwner";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "contractReceiver";
                    type: "address";
                }];
                name: "addSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "contractManagerOfSkaleManager";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    name: "id";
                    type: "uint256";
                }, {
                    name: "amount";
                    type: "uint256";
                }];
                name: "depositERC1155";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    name: "ids";
                    type: "uint256[]";
                }, {
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "depositERC1155Batch";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "enableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "gasPayer";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    name: "receiver";
                    type: "address";
                }, {
                    name: "ids";
                    type: "uint256[]";
                }, {
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "getFunds";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "from";
                    type: "uint256";
                }, {
                    name: "to";
                    type: "uint256";
                }];
                name: "getSchainToAllERC1155";
                outputs: readonly [{
                    name: "tokensInRange";
                    type: "address[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "getSchainToAllERC1155Length";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc1155OnMainnet";
                    type: "address";
                }];
                name: "getSchainToERC1155";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchainContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "newMessageProxy";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "linkerValue";
                    type: "address";
                }, {
                    name: "messageProxyValue";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newContractManagerOfSkaleManager";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "tokens";
                    type: "address[]";
                }];
                name: "initializeAllTokensForSchain";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "sender";
                    type: "address";
                }, {
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isSchainOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "isWhitelisted";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "linker";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "operator";
                    type: "address";
                }, {
                    name: "";
                    type: "address";
                }, {
                    name: "";
                    type: "uint256[]";
                }, {
                    name: "";
                    type: "uint256[]";
                }, {
                    name: "";
                    type: "bytes";
                }];
                name: "onERC1155BatchReceived";
                outputs: readonly [{
                    name: "";
                    type: "bytes4";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "operator";
                    type: "address";
                }, {
                    name: "";
                    type: "address";
                }, {
                    name: "";
                    type: "uint256";
                }, {
                    name: "";
                    type: "uint256";
                }, {
                    name: "";
                    type: "bytes";
                }];
                name: "onERC1155Received";
                outputs: readonly [{
                    name: "";
                    type: "bytes4";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "removeSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "schainLinks";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }, {
                    name: "";
                    type: "address";
                }, {
                    name: "";
                    type: "uint256";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }];
            DEPOSIT_BOX_ERC20: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    name: "schainName";
                    type: "string";
                }, {
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }];
                name: "ERC20TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    name: "amount";
                    type: "uint256";
                }];
                name: "ERC20TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEPOSIT_BOX_MANAGER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "LINKER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc20OnMainnet";
                    type: "address";
                }];
                name: "addERC20TokenByOwner";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "contractReceiver";
                    type: "address";
                }];
                name: "addSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "contractManagerOfSkaleManager";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc20OnMainnet";
                    type: "address";
                }, {
                    name: "amount";
                    type: "uint256";
                }];
                name: "depositERC20";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "enableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "gasPayer";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc20OnMainnet";
                    type: "address";
                }, {
                    name: "receiver";
                    type: "address";
                }, {
                    name: "amount";
                    type: "uint256";
                }];
                name: "getFunds";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "from";
                    type: "uint256";
                }, {
                    name: "to";
                    type: "uint256";
                }];
                name: "getSchainToAllERC20";
                outputs: readonly [{
                    name: "tokensInRange";
                    type: "address[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "getSchainToAllERC20Length";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc20OnMainnet";
                    type: "address";
                }];
                name: "getSchainToERC20";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchainContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "newMessageProxy";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "linkerValue";
                    type: "address";
                }, {
                    name: "messageProxyValue";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newContractManagerOfSkaleManager";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "tokens";
                    type: "address[]";
                }];
                name: "initializeAllTokensForSchain";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "sender";
                    type: "address";
                }, {
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isSchainOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "isWhitelisted";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "linker";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "removeSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "schainLinks";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }, {
                    name: "";
                    type: "address";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }];
            DEPOSIT_BOX_ERC721: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    name: "schainName";
                    type: "string";
                }, {
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }];
                name: "ERC721TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "ERC721TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEPOSIT_BOX_MANAGER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "LINKER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc721OnMainnet";
                    type: "address";
                }];
                name: "addERC721TokenByOwner";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "contractReceiver";
                    type: "address";
                }];
                name: "addSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "contractManagerOfSkaleManager";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc721OnMainnet";
                    type: "address";
                }, {
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "depositERC721";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "enableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "gasPayer";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc721OnMainnet";
                    type: "address";
                }, {
                    name: "receiver";
                    type: "address";
                }, {
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "getFunds";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "from";
                    type: "uint256";
                }, {
                    name: "to";
                    type: "uint256";
                }];
                name: "getSchainToAllERC721";
                outputs: readonly [{
                    name: "tokensInRange";
                    type: "address[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "getSchainToAllERC721Length";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "erc721OnMainnet";
                    type: "address";
                }];
                name: "getSchainToERC721";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchainContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "newMessageProxy";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "linkerValue";
                    type: "address";
                }, {
                    name: "messageProxyValue";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newContractManagerOfSkaleManager";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "tokens";
                    type: "address[]";
                }];
                name: "initializeAllTokensForSchain";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "sender";
                    type: "address";
                }, {
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isSchainOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "isWhitelisted";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "linker";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "removeSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "schainLinks";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "address";
                }, {
                    name: "";
                    type: "uint256";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }];
            DEPOSIT_BOX_ERC721_WITH_METADATA: readonly [];
            DEPOSIT_BOX_ETH: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    indexed: false;
                    name: "active";
                    type: "bool";
                }];
                name: "ActiveEthTransfers";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEPOSIT_BOX_MANAGER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "LINKER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "activeEthTransfers";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "contractReceiver";
                    type: "address";
                }];
                name: "addSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "address";
                }];
                name: "approveTransfers";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "contractManagerOfSkaleManager";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "deposit";
                outputs: readonly [];
                payable: true;
                stateMutability: "payable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disableActiveEthTransfers";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "enableActiveEthTransfers";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "enableWhitelist";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "gasPayer";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "receiver";
                    type: "address";
                }, {
                    name: "amount";
                    type: "uint256";
                }];
                name: "getFunds";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [];
                name: "getMyEth";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchainContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "newMessageProxy";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "linkerValue";
                    type: "address";
                }, {
                    name: "messageProxyValue";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newContractManagerOfSkaleManager";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "sender";
                    type: "address";
                }, {
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isSchainOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "isWhitelisted";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "linker";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }, {
                    name: "sender";
                    type: "address";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "removeSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "schainLinks";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }];
            LINKER: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                constant: true;
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "LINKER_ROLE";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "contractReceiver";
                    type: "address";
                }];
                name: "addSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }, {
                    name: "schainContracts";
                    type: "address[]";
                }];
                name: "connectSchain";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "contractManagerOfSkaleManager";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "disconnectSchain";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "mainnetContract";
                    type: "address";
                }];
                name: "hasMainnetContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchain";
                outputs: readonly [{
                    name: "connected";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchainContract";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "contractManagerOfSkaleManagerValue";
                    type: "address";
                }, {
                    name: "messageProxyValue";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newContractManagerOfSkaleManager";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isNotKilled";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "sender";
                    type: "address";
                }, {
                    name: "schainHash";
                    type: "bytes32";
                }];
                name: "isSchainOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "kill";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "newMainnetContract";
                    type: "address";
                }];
                name: "registerMainnetContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "mainnetContract";
                    type: "address";
                }];
                name: "removeMainnetContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "schainName";
                    type: "string";
                }];
                name: "removeSchainContract";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "role";
                    type: "bytes32";
                }, {
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                payable: false;
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "schainLinks";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "bytes32";
                }];
                name: "statuses";
                outputs: readonly [{
                    name: "";
                    type: "uint8";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }];
            MARIONETTE: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "EtherReceived";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "receiver";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "EtherSent";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "bytes";
                    name: "output";
                    type: "bytes";
                }];
                name: "FunctionCallResult";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "ACCESS_VIOLATION";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "IMA_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "PUPPETEER_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "receiver";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "encodeFunctionCall";
                outputs: readonly [{
                    internalType: "bytes";
                    name: "";
                    type: "bytes";
                }];
                stateMutability: "pure";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "target";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "execute";
                outputs: readonly [{
                    internalType: "bytes";
                    name: "";
                    type: "bytes";
                }];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "owner";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "ima";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address payable";
                    name: "target";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "value";
                    type: "uint256";
                }];
                name: "sendSFuel";
                outputs: readonly [];
                stateMutability: "payable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                stateMutability: "payable";
                type: "receive";
            }];
            MULTISIG_WALLET: readonly [{
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                name: "owners";
                outputs: readonly [{
                    name: "";
                    type: "address";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "owner";
                    type: "address";
                }];
                name: "removeOwner";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "revokeConfirmation";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "address";
                }];
                name: "isOwner";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "uint256";
                }, {
                    name: "";
                    type: "address";
                }];
                name: "confirmations";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "calcMaxWithdraw";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "pending";
                    type: "bool";
                }, {
                    name: "executed";
                    type: "bool";
                }];
                name: "getTransactionCount";
                outputs: readonly [{
                    name: "count";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "dailyLimit";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "lastDay";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "owner";
                    type: "address";
                }];
                name: "addOwner";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "isConfirmed";
                outputs: readonly [{
                    name: "";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "getConfirmationCount";
                outputs: readonly [{
                    name: "count";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                name: "transactions";
                outputs: readonly [{
                    name: "destination";
                    type: "address";
                }, {
                    name: "value";
                    type: "uint256";
                }, {
                    name: "data";
                    type: "bytes";
                }, {
                    name: "executed";
                    type: "bool";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "getOwners";
                outputs: readonly [{
                    name: "";
                    type: "address[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "from";
                    type: "uint256";
                }, {
                    name: "to";
                    type: "uint256";
                }, {
                    name: "pending";
                    type: "bool";
                }, {
                    name: "executed";
                    type: "bool";
                }];
                name: "getTransactionIds";
                outputs: readonly [{
                    name: "_transactionIds";
                    type: "uint256[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "getConfirmations";
                outputs: readonly [{
                    name: "_confirmations";
                    type: "address[]";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "transactionCount";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "_required";
                    type: "uint256";
                }];
                name: "changeRequirement";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "confirmTransaction";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "destination";
                    type: "address";
                }, {
                    name: "value";
                    type: "uint256";
                }, {
                    name: "data";
                    type: "bytes";
                }];
                name: "submitTransaction";
                outputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "_dailyLimit";
                    type: "uint256";
                }];
                name: "changeDailyLimit";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "MAX_OWNER_COUNT";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "required";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "owner";
                    type: "address";
                }, {
                    name: "newOwner";
                    type: "address";
                }];
                name: "replaceOwner";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: false;
                inputs: readonly [{
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "executeTransaction";
                outputs: readonly [];
                payable: false;
                stateMutability: "nonpayable";
                type: "function";
            }, {
                constant: true;
                inputs: readonly [];
                name: "spentToday";
                outputs: readonly [{
                    name: "";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    name: "_owners";
                    type: "address[]";
                }, {
                    name: "_required";
                    type: "uint256";
                }, {
                    name: "_dailyLimit";
                    type: "uint256";
                }];
                payable: false;
                stateMutability: "nonpayable";
                type: "constructor";
            }, {
                payable: true;
                stateMutability: "payable";
                type: "fallback";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    name: "dailyLimit";
                    type: "uint256";
                }];
                name: "DailyLimitChange";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "Confirmation";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "sender";
                    type: "address";
                }, {
                    indexed: true;
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "Revocation";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "Submission";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "Execution";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "transactionId";
                    type: "uint256";
                }];
                name: "ExecutionFailure";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "sender";
                    type: "address";
                }, {
                    indexed: false;
                    name: "value";
                    type: "uint256";
                }];
                name: "Deposit";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "owner";
                    type: "address";
                }];
                name: "OwnerAddition";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    name: "owner";
                    type: "address";
                }];
                name: "OwnerRemoval";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    name: "required";
                    type: "uint256";
                }];
                name: "RequirementChange";
                type: "event";
            }];
            TOKEN_MANAGER_ERC1155: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "oldValue";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "newValue";
                    type: "address";
                }];
                name: "DepositBoxWasChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnSchain";
                    type: "address";
                }];
                name: "ERC1155TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnSchain";
                    type: "address";
                }];
                name: "ERC1155TokenCreated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256[]";
                    name: "ids";
                    type: "uint256[]";
                }, {
                    indexed: false;
                    internalType: "uint256[]";
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "ERC1155TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc1155OnSchain";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256[]";
                    name: "ids";
                    type: "uint256[]";
                }, {
                    indexed: false;
                    internalType: "uint256[]";
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "ERC1155TokenReceived";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "AUTOMATIC_DEPLOY_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "TOKEN_REGISTRAR_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetChainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "erc1155OnMainnet";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "erc1155OnSchain";
                    type: "address";
                }];
                name: "addERC1155TokenByOwner";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "newTokenManager";
                    type: "address";
                }];
                name: "addTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract ERC1155OnChain";
                    name: "";
                    type: "address";
                }];
                name: "addedClones";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "automaticDeploy";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "changeDepositBoxAddress";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "clonesErc1155";
                outputs: readonly [{
                    internalType: "contract ERC1155OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "communityLocker";
                outputs: readonly [{
                    internalType: "contract ICommunityLocker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "depositBox";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "deprecatedClonesErc1155";
                outputs: readonly [{
                    internalType: "contract ERC1155OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "id";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "exitToMainERC1155";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256[]";
                    name: "ids";
                    type: "uint256[]";
                }, {
                    internalType: "uint256[]";
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "exitToMainERC1155Batch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "hasTokenManager";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newChainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newSchainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initializeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "operator";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }, {
                    internalType: "uint256[]";
                    name: "";
                    type: "uint256[]";
                }, {
                    internalType: "uint256[]";
                    name: "";
                    type: "uint256[]";
                }, {
                    internalType: "bytes";
                    name: "";
                    type: "bytes";
                }];
                name: "onERC1155BatchReceived";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "operator";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }, {
                    internalType: "bytes";
                    name: "";
                    type: "bytes";
                }];
                name: "onERC1155Received";
                outputs: readonly [{
                    internalType: "bytes4";
                    name: "";
                    type: "bytes4";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "fromChainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "removeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "schainHash";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "tokenManagerLinker";
                outputs: readonly [{
                    internalType: "contract ITokenManagerLinker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                name: "tokenManagers";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetSchainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "id";
                    type: "uint256";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "transferToSchainERC1155";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetSchainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256[]";
                    name: "ids";
                    type: "uint256[]";
                }, {
                    internalType: "uint256[]";
                    name: "amounts";
                    type: "uint256[]";
                }];
                name: "transferToSchainERC1155Batch";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }];
            TOKEN_MANAGER_ERC20: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "oldValue";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "newValue";
                    type: "address";
                }];
                name: "DepositBoxWasChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnSchain";
                    type: "address";
                }];
                name: "ERC20TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnSchain";
                    type: "address";
                }];
                name: "ERC20TokenCreated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "ERC20TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc20OnSchain";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "ERC20TokenReceived";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "AUTOMATIC_DEPLOY_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "TOKEN_REGISTRAR_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetChainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "erc20OnMainChain";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "erc20OnSchain";
                    type: "address";
                }];
                name: "addERC20TokenByOwner";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "newTokenManager";
                    type: "address";
                }];
                name: "addTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract ERC20OnChain";
                    name: "";
                    type: "address";
                }];
                name: "addedClones";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "automaticDeploy";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "changeDepositBoxAddress";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "clonesErc20";
                outputs: readonly [{
                    internalType: "contract ERC20OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "communityLocker";
                outputs: readonly [{
                    internalType: "contract ICommunityLocker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "depositBox";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "deprecatedClonesErc20";
                outputs: readonly [{
                    internalType: "contract ERC20OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "exitToMainERC20";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "hasTokenManager";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newChainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newSchainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initializeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "fromChainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "removeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "schainHash";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "tokenManagerLinker";
                outputs: readonly [{
                    internalType: "contract ITokenManagerLinker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                name: "tokenManagers";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract IERC20Upgradeable";
                    name: "";
                    type: "address";
                }];
                name: "totalSupplyOnMainnet";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetSchainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "transferToSchainERC20";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }];
            TOKEN_MANAGER_ERC721: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "oldValue";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "newValue";
                    type: "address";
                }];
                name: "DepositBoxWasChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnSchain";
                    type: "address";
                }];
                name: "ERC721TokenAdded";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnSchain";
                    type: "address";
                }];
                name: "ERC721TokenCreated";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "ERC721TokenReady";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "chainHash";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnMainChain";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "erc721OnSchain";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "uint256";
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "ERC721TokenReceived";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "AUTOMATIC_DEPLOY_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "TOKEN_REGISTRAR_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetChainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "erc721OnMainChain";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "erc721OnSchain";
                    type: "address";
                }];
                name: "addERC721TokenByOwner";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "newTokenManager";
                    type: "address";
                }];
                name: "addTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract ERC721OnChain";
                    name: "";
                    type: "address";
                }];
                name: "addedClones";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "automaticDeploy";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "changeDepositBoxAddress";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "clonesErc721";
                outputs: readonly [{
                    internalType: "contract ERC721OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "communityLocker";
                outputs: readonly [{
                    internalType: "contract ICommunityLocker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "depositBox";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                name: "deprecatedClonesErc721";
                outputs: readonly [{
                    internalType: "contract ERC721OnChain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "exitToMainERC721";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "hasTokenManager";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newChainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newSchainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initializeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "fromChainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "removeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "schainHash";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "tokenManagerLinker";
                outputs: readonly [{
                    internalType: "contract ITokenManagerLinker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                name: "tokenManagers";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "targetSchainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "contractOnMainnet";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "tokenId";
                    type: "uint256";
                }];
                name: "transferToSchainERC721";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }, {
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "transferredAmount";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }];
            TOKEN_MANAGER_ETH: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "address";
                    name: "oldValue";
                    type: "address";
                }, {
                    indexed: false;
                    internalType: "address";
                    name: "newValue";
                    type: "address";
                }];
                name: "DepositBoxWasChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "AUTOMATIC_DEPLOY_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "TOKEN_REGISTRAR_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }, {
                    internalType: "address";
                    name: "newTokenManager";
                    type: "address";
                }];
                name: "addTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "automaticDeploy";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "changeDepositBoxAddress";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "communityLocker";
                outputs: readonly [{
                    internalType: "contract ICommunityLocker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "depositBox";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "disableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "enableAutomaticDeploy";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "ethErc20";
                outputs: readonly [{
                    internalType: "contract IEthErc20";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "amount";
                    type: "uint256";
                }];
                name: "exitToMain";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "hasTokenManager";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newChainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }, {
                    internalType: "contract IEthErc20";
                    name: "ethErc20Address";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "newSchainName";
                    type: "string";
                }, {
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxy";
                    type: "address";
                }, {
                    internalType: "contract ITokenManagerLinker";
                    name: "newIMALinker";
                    type: "address";
                }, {
                    internalType: "contract ICommunityLocker";
                    name: "newCommunityLocker";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "newDepositBox";
                    type: "address";
                }];
                name: "initializeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "fromChainHash";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }, {
                    internalType: "bytes";
                    name: "data";
                    type: "bytes";
                }];
                name: "postMessage";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "removeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "schainHash";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract IEthErc20";
                    name: "newEthErc20Address";
                    type: "address";
                }];
                name: "setEthErc20Address";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "tokenManagerLinker";
                outputs: readonly [{
                    internalType: "contract ITokenManagerLinker";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                name: "tokenManagers";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }];
            TOKEN_MANAGER_LINKER: readonly [{
                anonymous: false;
                inputs: readonly [{
                    indexed: false;
                    internalType: "uint8";
                    name: "version";
                    type: "uint8";
                }];
                name: "Initialized";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "previousAdminRole";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "bytes32";
                    name: "newAdminRole";
                    type: "bytes32";
                }];
                name: "RoleAdminChanged";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleGranted";
                type: "event";
            }, {
                anonymous: false;
                inputs: readonly [{
                    indexed: true;
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "account";
                    type: "address";
                }, {
                    indexed: true;
                    internalType: "address";
                    name: "sender";
                    type: "address";
                }];
                name: "RoleRevoked";
                type: "event";
            }, {
                inputs: readonly [];
                name: "DEFAULT_ADMIN_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_HASH";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "MAINNET_NAME";
                outputs: readonly [{
                    internalType: "string";
                    name: "";
                    type: "string";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "REGISTRAR_ROLE";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "connectSchain";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "disconnectSchain";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleAdmin";
                outputs: readonly [{
                    internalType: "bytes32";
                    name: "";
                    type: "bytes32";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "uint256";
                    name: "index";
                    type: "uint256";
                }];
                name: "getRoleMember";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }];
                name: "getRoleMemberCount";
                outputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "grantRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "hasRole";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "string";
                    name: "schainName";
                    type: "string";
                }];
                name: "hasSchain";
                outputs: readonly [{
                    internalType: "bool";
                    name: "connected";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "address";
                    name: "tokenManager";
                    type: "address";
                }];
                name: "hasTokenManager";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "newMessageProxyAddress";
                    type: "address";
                }, {
                    internalType: "address";
                    name: "linker";
                    type: "address";
                }];
                name: "initialize";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [];
                name: "linkerAddress";
                outputs: readonly [{
                    internalType: "address";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [];
                name: "messageProxy";
                outputs: readonly [{
                    internalType: "contract IMessageProxyForSchain";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract ITokenManager";
                    name: "newTokenManager";
                    type: "address";
                }];
                name: "registerTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "contract ITokenManager";
                    name: "tokenManagerAddress";
                    type: "address";
                }];
                name: "removeTokenManager";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "renounceRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes32";
                    name: "role";
                    type: "bytes32";
                }, {
                    internalType: "address";
                    name: "account";
                    type: "address";
                }];
                name: "revokeRole";
                outputs: readonly [];
                stateMutability: "nonpayable";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "bytes4";
                    name: "interfaceId";
                    type: "bytes4";
                }];
                name: "supportsInterface";
                outputs: readonly [{
                    internalType: "bool";
                    name: "";
                    type: "bool";
                }];
                stateMutability: "view";
                type: "function";
            }, {
                inputs: readonly [{
                    internalType: "uint256";
                    name: "";
                    type: "uint256";
                }];
                name: "tokenManagers";
                outputs: readonly [{
                    internalType: "contract ITokenManager";
                    name: "";
                    type: "address";
                }];
                stateMutability: "view";
                type: "function";
            }];
        }[`TOKEN_MANAGER_${T}`]>;
    }

    • Optional abi?: {
          COMMUNITY_LOCKER: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "bytes32";
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "user";
                  type: "address";
              }];
              name: "ActivateUser";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "constantHash";
                  type: "bytes32";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "previousValue";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "newValue";
                  type: "uint256";
              }];
              name: "ConstantUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "bytes32";
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "user";
                  type: "address";
              }];
              name: "LockUser";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "CONSTANT_SETTER_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "activeUsers";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "receiver";
                  type: "address";
              }];
              name: "checkAllowedToSendMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "communityPool";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "gasPriceTimestamp";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newSchainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newTokenManagerLinker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newCommunityPool";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "initializeTimestamp";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "lastMessageTimeStamp";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "lastMessageTimeStampToSchain";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "mainnetGasPrice";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "fromChainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "schainHash";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "gasPrice";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "timestamp";
                  type: "uint256";
              }, {
                  components: readonly [{
                      internalType: "uint256[2]";
                      name: "blsSignature";
                      type: "uint256[2]";
                  }, {
                      internalType: "uint256";
                      name: "hashA";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "hashB";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "counter";
                      type: "uint256";
                  }];
                  internalType: "struct IMessageProxy.Signature";
                  name: "";
                  type: "tuple";
              }];
              name: "setGasPrice";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "chainName";
                  type: "string";
              }, {
                  internalType: "uint256";
                  name: "newTimeLimitPerMessage";
                  type: "uint256";
              }];
              name: "setTimeLimitPerMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              name: "timeLimitPerMessage";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenManagerLinker";
              outputs: readonly [{
                  internalType: "contract ITokenManagerLinker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }];
          CONFIG_CONTROLLER: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEPLOYER_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEPLOYER_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MTM_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "addr";
                  type: "address";
              }];
              name: "addToWhitelist";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableFreeContractDeployment";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableMTM";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableFreeContractDeployment";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableMTM";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "addr";
                  type: "address";
              }];
              name: "isAddressWhitelisted";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "isFCDEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "isMTMEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "addr";
                  type: "address";
              }];
              name: "removeFromWhitelist";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "_version";
                  type: "string";
              }];
              name: "setVersion";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "version";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }];
          DEPOSIT_BOX_ERC1155: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  name: "schainName";
                  type: "string";
              }, {
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }];
              name: "ERC1155TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "ERC1155TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEPOSIT_BOX_MANAGER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "LINKER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc1155OnMainnet";
                  type: "address";
              }];
              name: "addERC1155TokenByOwner";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "contractReceiver";
                  type: "address";
              }];
              name: "addSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "contractManagerOfSkaleManager";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  name: "id";
                  type: "uint256";
              }, {
                  name: "amount";
                  type: "uint256";
              }];
              name: "depositERC1155";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  name: "ids";
                  type: "uint256[]";
              }, {
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "depositERC1155Batch";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "enableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "gasPayer";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  name: "receiver";
                  type: "address";
              }, {
                  name: "ids";
                  type: "uint256[]";
              }, {
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "getFunds";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "from";
                  type: "uint256";
              }, {
                  name: "to";
                  type: "uint256";
              }];
              name: "getSchainToAllERC1155";
              outputs: readonly [{
                  name: "tokensInRange";
                  type: "address[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "getSchainToAllERC1155Length";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc1155OnMainnet";
                  type: "address";
              }];
              name: "getSchainToERC1155";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchainContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "newMessageProxy";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "linkerValue";
                  type: "address";
              }, {
                  name: "messageProxyValue";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newContractManagerOfSkaleManager";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "tokens";
                  type: "address[]";
              }];
              name: "initializeAllTokensForSchain";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "sender";
                  type: "address";
              }, {
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isSchainOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "isWhitelisted";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "linker";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "operator";
                  type: "address";
              }, {
                  name: "";
                  type: "address";
              }, {
                  name: "";
                  type: "uint256[]";
              }, {
                  name: "";
                  type: "uint256[]";
              }, {
                  name: "";
                  type: "bytes";
              }];
              name: "onERC1155BatchReceived";
              outputs: readonly [{
                  name: "";
                  type: "bytes4";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "operator";
                  type: "address";
              }, {
                  name: "";
                  type: "address";
              }, {
                  name: "";
                  type: "uint256";
              }, {
                  name: "";
                  type: "uint256";
              }, {
                  name: "";
                  type: "bytes";
              }];
              name: "onERC1155Received";
              outputs: readonly [{
                  name: "";
                  type: "bytes4";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "removeSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "schainLinks";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }, {
                  name: "";
                  type: "address";
              }, {
                  name: "";
                  type: "uint256";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }];
          DEPOSIT_BOX_ERC20: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  name: "schainName";
                  type: "string";
              }, {
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }];
              name: "ERC20TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  name: "amount";
                  type: "uint256";
              }];
              name: "ERC20TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEPOSIT_BOX_MANAGER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "LINKER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc20OnMainnet";
                  type: "address";
              }];
              name: "addERC20TokenByOwner";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "contractReceiver";
                  type: "address";
              }];
              name: "addSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "contractManagerOfSkaleManager";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc20OnMainnet";
                  type: "address";
              }, {
                  name: "amount";
                  type: "uint256";
              }];
              name: "depositERC20";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "enableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "gasPayer";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc20OnMainnet";
                  type: "address";
              }, {
                  name: "receiver";
                  type: "address";
              }, {
                  name: "amount";
                  type: "uint256";
              }];
              name: "getFunds";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "from";
                  type: "uint256";
              }, {
                  name: "to";
                  type: "uint256";
              }];
              name: "getSchainToAllERC20";
              outputs: readonly [{
                  name: "tokensInRange";
                  type: "address[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "getSchainToAllERC20Length";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc20OnMainnet";
                  type: "address";
              }];
              name: "getSchainToERC20";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchainContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "newMessageProxy";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "linkerValue";
                  type: "address";
              }, {
                  name: "messageProxyValue";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newContractManagerOfSkaleManager";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "tokens";
                  type: "address[]";
              }];
              name: "initializeAllTokensForSchain";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "sender";
                  type: "address";
              }, {
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isSchainOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "isWhitelisted";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "linker";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "removeSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "schainLinks";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }, {
                  name: "";
                  type: "address";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }];
          DEPOSIT_BOX_ERC721: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  name: "schainName";
                  type: "string";
              }, {
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }];
              name: "ERC721TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "ERC721TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEPOSIT_BOX_MANAGER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "LINKER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc721OnMainnet";
                  type: "address";
              }];
              name: "addERC721TokenByOwner";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "contractReceiver";
                  type: "address";
              }];
              name: "addSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "contractManagerOfSkaleManager";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc721OnMainnet";
                  type: "address";
              }, {
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "depositERC721";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "enableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "gasPayer";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc721OnMainnet";
                  type: "address";
              }, {
                  name: "receiver";
                  type: "address";
              }, {
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "getFunds";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "from";
                  type: "uint256";
              }, {
                  name: "to";
                  type: "uint256";
              }];
              name: "getSchainToAllERC721";
              outputs: readonly [{
                  name: "tokensInRange";
                  type: "address[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "getSchainToAllERC721Length";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc721OnMainnet";
                  type: "address";
              }];
              name: "getSchainToERC721";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchainContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "newMessageProxy";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "linkerValue";
                  type: "address";
              }, {
                  name: "messageProxyValue";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newContractManagerOfSkaleManager";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "tokens";
                  type: "address[]";
              }];
              name: "initializeAllTokensForSchain";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "sender";
                  type: "address";
              }, {
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isSchainOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "isWhitelisted";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "linker";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "removeSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "schainLinks";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "address";
              }, {
                  name: "";
                  type: "uint256";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }];
          DEPOSIT_BOX_ERC721_WITH_METADATA: readonly [];
          DEPOSIT_BOX_ETH: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  indexed: false;
                  name: "active";
                  type: "bool";
              }];
              name: "ActiveEthTransfers";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEPOSIT_BOX_MANAGER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "LINKER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "activeEthTransfers";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "contractReceiver";
                  type: "address";
              }];
              name: "addSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "address";
              }];
              name: "approveTransfers";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "contractManagerOfSkaleManager";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "deposit";
              outputs: readonly [];
              payable: true;
              stateMutability: "payable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disableActiveEthTransfers";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "enableActiveEthTransfers";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "enableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "gasPayer";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "receiver";
                  type: "address";
              }, {
                  name: "amount";
                  type: "uint256";
              }];
              name: "getFunds";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [];
              name: "getMyEth";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchainContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "newMessageProxy";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "linkerValue";
                  type: "address";
              }, {
                  name: "messageProxyValue";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newContractManagerOfSkaleManager";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "sender";
                  type: "address";
              }, {
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isSchainOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "isWhitelisted";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "linker";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "removeSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "schainLinks";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }];
          LINKER: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "LINKER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "contractReceiver";
                  type: "address";
              }];
              name: "addSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "schainContracts";
                  type: "address[]";
              }];
              name: "connectSchain";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "contractManagerOfSkaleManager";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disconnectSchain";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "mainnetContract";
                  type: "address";
              }];
              name: "hasMainnetContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchain";
              outputs: readonly [{
                  name: "connected";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchainContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "messageProxyValue";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newContractManagerOfSkaleManager";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isNotKilled";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "sender";
                  type: "address";
              }, {
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isSchainOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "kill";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newMainnetContract";
                  type: "address";
              }];
              name: "registerMainnetContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "mainnetContract";
                  type: "address";
              }];
              name: "removeMainnetContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "removeSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "schainLinks";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "statuses";
              outputs: readonly [{
                  name: "";
                  type: "uint8";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }];
          MARIONETTE: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "EtherReceived";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "receiver";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "EtherSent";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "bytes";
                  name: "output";
                  type: "bytes";
              }];
              name: "FunctionCallResult";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "ACCESS_VIOLATION";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "IMA_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "PUPPETEER_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "receiver";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "value";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "encodeFunctionCall";
              outputs: readonly [{
                  internalType: "bytes";
                  name: "";
                  type: "bytes";
              }];
              stateMutability: "pure";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address payable";
                  name: "target";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "value";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "execute";
              outputs: readonly [{
                  internalType: "bytes";
                  name: "";
                  type: "bytes";
              }];
              stateMutability: "payable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "ima";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address payable";
                  name: "target";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "value";
                  type: "uint256";
              }];
              name: "sendSFuel";
              outputs: readonly [];
              stateMutability: "payable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              stateMutability: "payable";
              type: "receive";
          }];
          MULTISIG_WALLET: readonly [{
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              name: "owners";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "owner";
                  type: "address";
              }];
              name: "removeOwner";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "revokeConfirmation";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "address";
              }];
              name: "isOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "uint256";
              }, {
                  name: "";
                  type: "address";
              }];
              name: "confirmations";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "calcMaxWithdraw";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "pending";
                  type: "bool";
              }, {
                  name: "executed";
                  type: "bool";
              }];
              name: "getTransactionCount";
              outputs: readonly [{
                  name: "count";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "dailyLimit";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "lastDay";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "owner";
                  type: "address";
              }];
              name: "addOwner";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "isConfirmed";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "getConfirmationCount";
              outputs: readonly [{
                  name: "count";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              name: "transactions";
              outputs: readonly [{
                  name: "destination";
                  type: "address";
              }, {
                  name: "value";
                  type: "uint256";
              }, {
                  name: "data";
                  type: "bytes";
              }, {
                  name: "executed";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "getOwners";
              outputs: readonly [{
                  name: "";
                  type: "address[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "from";
                  type: "uint256";
              }, {
                  name: "to";
                  type: "uint256";
              }, {
                  name: "pending";
                  type: "bool";
              }, {
                  name: "executed";
                  type: "bool";
              }];
              name: "getTransactionIds";
              outputs: readonly [{
                  name: "_transactionIds";
                  type: "uint256[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "getConfirmations";
              outputs: readonly [{
                  name: "_confirmations";
                  type: "address[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "transactionCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "_required";
                  type: "uint256";
              }];
              name: "changeRequirement";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "confirmTransaction";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "destination";
                  type: "address";
              }, {
                  name: "value";
                  type: "uint256";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "submitTransaction";
              outputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "_dailyLimit";
                  type: "uint256";
              }];
              name: "changeDailyLimit";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "MAX_OWNER_COUNT";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "required";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "owner";
                  type: "address";
              }, {
                  name: "newOwner";
                  type: "address";
              }];
              name: "replaceOwner";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "executeTransaction";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "spentToday";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  name: "_owners";
                  type: "address[]";
              }, {
                  name: "_required";
                  type: "uint256";
              }, {
                  name: "_dailyLimit";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              payable: true;
              stateMutability: "payable";
              type: "fallback";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  name: "dailyLimit";
                  type: "uint256";
              }];
              name: "DailyLimitChange";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "sender";
                  type: "address";
              }, {
                  indexed: true;
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "Confirmation";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "sender";
                  type: "address";
              }, {
                  indexed: true;
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "Revocation";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "Submission";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "Execution";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "ExecutionFailure";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "sender";
                  type: "address";
              }, {
                  indexed: false;
                  name: "value";
                  type: "uint256";
              }];
              name: "Deposit";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "owner";
                  type: "address";
              }];
              name: "OwnerAddition";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "owner";
                  type: "address";
              }];
              name: "OwnerRemoval";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  name: "required";
                  type: "uint256";
              }];
              name: "RequirementChange";
              type: "event";
          }];
          TOKEN_MANAGER_ERC1155: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "oldValue";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "newValue";
                  type: "address";
              }];
              name: "DepositBoxWasChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnSchain";
                  type: "address";
              }];
              name: "ERC1155TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnSchain";
                  type: "address";
              }];
              name: "ERC1155TokenCreated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "ERC1155TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnSchain";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "ERC1155TokenReceived";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "AUTOMATIC_DEPLOY_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "TOKEN_REGISTRAR_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetChainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "erc1155OnSchain";
                  type: "address";
              }];
              name: "addERC1155TokenByOwner";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "newTokenManager";
                  type: "address";
              }];
              name: "addTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract ERC1155OnChain";
                  name: "";
                  type: "address";
              }];
              name: "addedClones";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "automaticDeploy";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "changeDepositBoxAddress";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "clonesErc1155";
              outputs: readonly [{
                  internalType: "contract ERC1155OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "communityLocker";
              outputs: readonly [{
                  internalType: "contract ICommunityLocker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "depositBox";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "deprecatedClonesErc1155";
              outputs: readonly [{
                  internalType: "contract ERC1155OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "exitToMainERC1155";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "exitToMainERC1155Batch";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "hasTokenManager";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newChainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newSchainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initializeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "";
                  type: "bytes";
              }];
              name: "onERC1155BatchReceived";
              outputs: readonly [{
                  internalType: "bytes4";
                  name: "";
                  type: "bytes4";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "";
                  type: "bytes";
              }];
              name: "onERC1155Received";
              outputs: readonly [{
                  internalType: "bytes4";
                  name: "";
                  type: "bytes4";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "fromChainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "removeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "schainHash";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenManagerLinker";
              outputs: readonly [{
                  internalType: "contract ITokenManagerLinker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              name: "tokenManagers";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetSchainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "transferToSchainERC1155";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetSchainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "transferToSchainERC1155Batch";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }];
          TOKEN_MANAGER_ERC20: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "oldValue";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "newValue";
                  type: "address";
              }];
              name: "DepositBoxWasChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnSchain";
                  type: "address";
              }];
              name: "ERC20TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnSchain";
                  type: "address";
              }];
              name: "ERC20TokenCreated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "ERC20TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnSchain";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "ERC20TokenReceived";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "AUTOMATIC_DEPLOY_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "TOKEN_REGISTRAR_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetChainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "erc20OnMainChain";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "erc20OnSchain";
                  type: "address";
              }];
              name: "addERC20TokenByOwner";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "newTokenManager";
                  type: "address";
              }];
              name: "addTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract ERC20OnChain";
                  name: "";
                  type: "address";
              }];
              name: "addedClones";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "automaticDeploy";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "changeDepositBoxAddress";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "clonesErc20";
              outputs: readonly [{
                  internalType: "contract ERC20OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "communityLocker";
              outputs: readonly [{
                  internalType: "contract ICommunityLocker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "depositBox";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "deprecatedClonesErc20";
              outputs: readonly [{
                  internalType: "contract ERC20OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "exitToMainERC20";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "hasTokenManager";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newChainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newSchainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initializeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "fromChainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "removeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "schainHash";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenManagerLinker";
              outputs: readonly [{
                  internalType: "contract ITokenManagerLinker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              name: "tokenManagers";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract IERC20Upgradeable";
                  name: "";
                  type: "address";
              }];
              name: "totalSupplyOnMainnet";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetSchainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "transferToSchainERC20";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }];
          TOKEN_MANAGER_ERC721: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "oldValue";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "newValue";
                  type: "address";
              }];
              name: "DepositBoxWasChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnSchain";
                  type: "address";
              }];
              name: "ERC721TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnSchain";
                  type: "address";
              }];
              name: "ERC721TokenCreated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "ERC721TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnSchain";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "ERC721TokenReceived";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "AUTOMATIC_DEPLOY_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "TOKEN_REGISTRAR_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetChainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "erc721OnMainChain";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "erc721OnSchain";
                  type: "address";
              }];
              name: "addERC721TokenByOwner";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "newTokenManager";
                  type: "address";
              }];
              name: "addTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract ERC721OnChain";
                  name: "";
                  type: "address";
              }];
              name: "addedClones";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "automaticDeploy";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "changeDepositBoxAddress";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "clonesErc721";
              outputs: readonly [{
                  internalType: "contract ERC721OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "communityLocker";
              outputs: readonly [{
                  internalType: "contract ICommunityLocker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "depositBox";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "deprecatedClonesErc721";
              outputs: readonly [{
                  internalType: "contract ERC721OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "exitToMainERC721";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "hasTokenManager";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newChainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newSchainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initializeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "fromChainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "removeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "schainHash";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenManagerLinker";
              outputs: readonly [{
                  internalType: "contract ITokenManagerLinker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              name: "tokenManagers";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetSchainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "transferToSchainERC721";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }];
          TOKEN_MANAGER_ETH: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "oldValue";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "newValue";
                  type: "address";
              }];
              name: "DepositBoxWasChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "AUTOMATIC_DEPLOY_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "TOKEN_REGISTRAR_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "newTokenManager";
                  type: "address";
              }];
              name: "addTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "automaticDeploy";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "changeDepositBoxAddress";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "communityLocker";
              outputs: readonly [{
                  internalType: "contract ICommunityLocker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "depositBox";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "ethErc20";
              outputs: readonly [{
                  internalType: "contract IEthErc20";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "exitToMain";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "hasTokenManager";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newChainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }, {
                  internalType: "contract IEthErc20";
                  name: "ethErc20Address";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newSchainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initializeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "fromChainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "removeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "schainHash";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract IEthErc20";
                  name: "newEthErc20Address";
                  type: "address";
              }];
              name: "setEthErc20Address";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenManagerLinker";
              outputs: readonly [{
                  internalType: "contract ITokenManagerLinker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              name: "tokenManagers";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }];
          TOKEN_MANAGER_LINKER: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "REGISTRAR_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "connectSchain";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "disconnectSchain";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchain";
              outputs: readonly [{
                  internalType: "bool";
                  name: "connected";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "tokenManager";
                  type: "address";
              }];
              name: "hasTokenManager";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxyAddress";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "linker";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "linkerAddress";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract ITokenManager";
                  name: "newTokenManager";
                  type: "address";
              }];
              name: "registerTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract ITokenManager";
                  name: "tokenManagerAddress";
                  type: "address";
              }];
              name: "removeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "tokenManagers";
              outputs: readonly [{
                  internalType: "contract ITokenManager";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }];
      }[`TOKEN_MANAGER_${T}`]
    • Optional address?: {
          COMMUNITY_LOCKER: {
              address: "0xD2aaa00300000000000000000000000000000000";
              key: string;
              name: string;
              network: "skale";
              type: "sudo";
          };
          COMMUNITY_POOL: {
              address: "0xb2BadB7f28075CB2C8BDBd730204750Db4C03f98";
              key: string;
              name: string;
              network: "skale";
              type: "sudo";
          };
          CONFIG_CONTROLLER: {
              address: "0xD2002000000000000000000000000000000000D2";
              key: "schain:config_controller";
              name: "ConfigController";
              network: "skale";
              type: "sudo";
          };
          DEPOSIT_BOX_ERC1155: {
              address: "0xa0EF1521f56641F9E0E43c46E0F6B20715E454c8";
              key: string;
              name: string;
              network: "ethereum";
              type: "ima:bridge";
          };
          DEPOSIT_BOX_ERC20: {
              address: "0xb3bf0c62f0924e5C8fdae9815355eA98Fba33C8E";
              key: string;
              name: string;
              network: "ethereum";
              type: "ima:bridge";
          };
          DEPOSIT_BOX_ERC721: {
              address: "0x98937f91885dcCfF8082623a157296AA161a9917";
              key: string;
              name: string;
              network: "ethereum";
              type: "ima:bridge";
          };
          DEPOSIT_BOX_ERC721_WITH_METADATA: {
              address: "0x4B85DD7d995D6ae445292939d7ebfabD7Cd088dA";
              key: string;
              name: string;
              network: "ethereum";
              type: "ima:bridge";
          };
          DEPOSIT_BOX_ETH: {
              address: "0x9910cF6ba22915C5afCe8b682f7c09d1c001FA59";
              key: string;
              name: string;
              network: "ethereum";
              type: "ima:bridge";
          };
          LINKER: {
              address: "0xEa870bEF8cc1Ca6871AE960266ea0fDbCF06371d";
              key: string;
              name: string;
              network: "ethereum";
              type: "ima:bridge";
          };
          MARIONETTE: {
              address: "0xD2c0DeFACe000000000000000000000000000000";
              key: string;
              name: string;
              network: "skale";
              type: "sudo";
          };
          MULTISIG_WALLET: {
              address: "0xD244519000000000000000000000000000000000";
              key: string;
              name: string;
              network: "skale";
              type: "sudo";
          };
          TOKEN_MANAGER_ERC1155: {
              address: "0xD2aaA00900000000000000000000000000000000";
              key: string;
              name: string;
              network: "skale";
              type: "ima:bridge";
          };
          TOKEN_MANAGER_ERC20: {
              address: "0xD2aAA00500000000000000000000000000000000";
              key: string;
              name: string;
              network: "skale";
              type: "ima:bridge";
          };
          TOKEN_MANAGER_ERC721: {
              address: "0xD2aaa00600000000000000000000000000000000";
              key: string;
              name: string;
              network: "skale";
              type: "ima:bridge";
          };
          TOKEN_MANAGER_ETH: {
              address: "0xd2AaA00400000000000000000000000000000000";
              key: string;
              name: string;
              network: "skale";
              type: "ima:bridge";
          };
          TOKEN_MANAGER_LINKER: {
              address: "0xD2aAA00800000000000000000000000000000000";
              key: string;
              name: string;
              network: "skale";
              type: "ima:bridge";
          };
      }[`TOKEN_MANAGER_${T}`]["address"]
    • Optional contract?: null | GetContractResult<{
          COMMUNITY_LOCKER: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "bytes32";
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "user";
                  type: "address";
              }];
              name: "ActivateUser";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "constantHash";
                  type: "bytes32";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "previousValue";
                  type: "uint256";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "newValue";
                  type: "uint256";
              }];
              name: "ConstantUpdated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "bytes32";
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "user";
                  type: "address";
              }];
              name: "LockUser";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "CONSTANT_SETTER_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "activeUsers";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "receiver";
                  type: "address";
              }];
              name: "checkAllowedToSendMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "communityPool";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "gasPriceTimestamp";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newSchainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newTokenManagerLinker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newCommunityPool";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "initializeTimestamp";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "lastMessageTimeStamp";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "lastMessageTimeStampToSchain";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "mainnetGasPrice";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "fromChainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "schainHash";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "gasPrice";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "timestamp";
                  type: "uint256";
              }, {
                  components: readonly [{
                      internalType: "uint256[2]";
                      name: "blsSignature";
                      type: "uint256[2]";
                  }, {
                      internalType: "uint256";
                      name: "hashA";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "hashB";
                      type: "uint256";
                  }, {
                      internalType: "uint256";
                      name: "counter";
                      type: "uint256";
                  }];
                  internalType: "struct IMessageProxy.Signature";
                  name: "";
                  type: "tuple";
              }];
              name: "setGasPrice";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "chainName";
                  type: "string";
              }, {
                  internalType: "uint256";
                  name: "newTimeLimitPerMessage";
                  type: "uint256";
              }];
              name: "setTimeLimitPerMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              name: "timeLimitPerMessage";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenManagerLinker";
              outputs: readonly [{
                  internalType: "contract ITokenManagerLinker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }];
          CONFIG_CONTROLLER: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEPLOYER_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEPLOYER_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MTM_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "addr";
                  type: "address";
              }];
              name: "addToWhitelist";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableFreeContractDeployment";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableMTM";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableFreeContractDeployment";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableMTM";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "addr";
                  type: "address";
              }];
              name: "isAddressWhitelisted";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "isFCDEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "isMTMEnabled";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "addr";
                  type: "address";
              }];
              name: "removeFromWhitelist";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "_version";
                  type: "string";
              }];
              name: "setVersion";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "version";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }];
          DEPOSIT_BOX_ERC1155: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  name: "schainName";
                  type: "string";
              }, {
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }];
              name: "ERC1155TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "ERC1155TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEPOSIT_BOX_MANAGER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "LINKER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc1155OnMainnet";
                  type: "address";
              }];
              name: "addERC1155TokenByOwner";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "contractReceiver";
                  type: "address";
              }];
              name: "addSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "contractManagerOfSkaleManager";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  name: "id";
                  type: "uint256";
              }, {
                  name: "amount";
                  type: "uint256";
              }];
              name: "depositERC1155";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  name: "ids";
                  type: "uint256[]";
              }, {
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "depositERC1155Batch";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "enableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "gasPayer";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  name: "receiver";
                  type: "address";
              }, {
                  name: "ids";
                  type: "uint256[]";
              }, {
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "getFunds";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "from";
                  type: "uint256";
              }, {
                  name: "to";
                  type: "uint256";
              }];
              name: "getSchainToAllERC1155";
              outputs: readonly [{
                  name: "tokensInRange";
                  type: "address[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "getSchainToAllERC1155Length";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc1155OnMainnet";
                  type: "address";
              }];
              name: "getSchainToERC1155";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchainContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "newMessageProxy";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "linkerValue";
                  type: "address";
              }, {
                  name: "messageProxyValue";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newContractManagerOfSkaleManager";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "tokens";
                  type: "address[]";
              }];
              name: "initializeAllTokensForSchain";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "sender";
                  type: "address";
              }, {
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isSchainOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "isWhitelisted";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "linker";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "operator";
                  type: "address";
              }, {
                  name: "";
                  type: "address";
              }, {
                  name: "";
                  type: "uint256[]";
              }, {
                  name: "";
                  type: "uint256[]";
              }, {
                  name: "";
                  type: "bytes";
              }];
              name: "onERC1155BatchReceived";
              outputs: readonly [{
                  name: "";
                  type: "bytes4";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "operator";
                  type: "address";
              }, {
                  name: "";
                  type: "address";
              }, {
                  name: "";
                  type: "uint256";
              }, {
                  name: "";
                  type: "uint256";
              }, {
                  name: "";
                  type: "bytes";
              }];
              name: "onERC1155Received";
              outputs: readonly [{
                  name: "";
                  type: "bytes4";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "removeSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "schainLinks";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }, {
                  name: "";
                  type: "address";
              }, {
                  name: "";
                  type: "uint256";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }];
          DEPOSIT_BOX_ERC20: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  name: "schainName";
                  type: "string";
              }, {
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }];
              name: "ERC20TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  name: "amount";
                  type: "uint256";
              }];
              name: "ERC20TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEPOSIT_BOX_MANAGER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "LINKER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc20OnMainnet";
                  type: "address";
              }];
              name: "addERC20TokenByOwner";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "contractReceiver";
                  type: "address";
              }];
              name: "addSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "contractManagerOfSkaleManager";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc20OnMainnet";
                  type: "address";
              }, {
                  name: "amount";
                  type: "uint256";
              }];
              name: "depositERC20";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "enableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "gasPayer";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc20OnMainnet";
                  type: "address";
              }, {
                  name: "receiver";
                  type: "address";
              }, {
                  name: "amount";
                  type: "uint256";
              }];
              name: "getFunds";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "from";
                  type: "uint256";
              }, {
                  name: "to";
                  type: "uint256";
              }];
              name: "getSchainToAllERC20";
              outputs: readonly [{
                  name: "tokensInRange";
                  type: "address[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "getSchainToAllERC20Length";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc20OnMainnet";
                  type: "address";
              }];
              name: "getSchainToERC20";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchainContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "newMessageProxy";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "linkerValue";
                  type: "address";
              }, {
                  name: "messageProxyValue";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newContractManagerOfSkaleManager";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "tokens";
                  type: "address[]";
              }];
              name: "initializeAllTokensForSchain";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "sender";
                  type: "address";
              }, {
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isSchainOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "isWhitelisted";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "linker";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "removeSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "schainLinks";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }, {
                  name: "";
                  type: "address";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }];
          DEPOSIT_BOX_ERC721: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  name: "schainName";
                  type: "string";
              }, {
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }];
              name: "ERC721TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "ERC721TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEPOSIT_BOX_MANAGER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "LINKER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc721OnMainnet";
                  type: "address";
              }];
              name: "addERC721TokenByOwner";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "contractReceiver";
                  type: "address";
              }];
              name: "addSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "contractManagerOfSkaleManager";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc721OnMainnet";
                  type: "address";
              }, {
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "depositERC721";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "enableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "gasPayer";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc721OnMainnet";
                  type: "address";
              }, {
                  name: "receiver";
                  type: "address";
              }, {
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "getFunds";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "from";
                  type: "uint256";
              }, {
                  name: "to";
                  type: "uint256";
              }];
              name: "getSchainToAllERC721";
              outputs: readonly [{
                  name: "tokensInRange";
                  type: "address[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "getSchainToAllERC721Length";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "erc721OnMainnet";
                  type: "address";
              }];
              name: "getSchainToERC721";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchainContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "newMessageProxy";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "linkerValue";
                  type: "address";
              }, {
                  name: "messageProxyValue";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newContractManagerOfSkaleManager";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "tokens";
                  type: "address[]";
              }];
              name: "initializeAllTokensForSchain";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "sender";
                  type: "address";
              }, {
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isSchainOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "isWhitelisted";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "linker";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "removeSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "schainLinks";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "address";
              }, {
                  name: "";
                  type: "uint256";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }];
          DEPOSIT_BOX_ERC721_WITH_METADATA: readonly [];
          DEPOSIT_BOX_ETH: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  indexed: false;
                  name: "active";
                  type: "bool";
              }];
              name: "ActiveEthTransfers";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEPOSIT_BOX_MANAGER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "LINKER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "activeEthTransfers";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "contractReceiver";
                  type: "address";
              }];
              name: "addSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "address";
              }];
              name: "approveTransfers";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "contractManagerOfSkaleManager";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "deposit";
              outputs: readonly [];
              payable: true;
              stateMutability: "payable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disableActiveEthTransfers";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "enableActiveEthTransfers";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "enableWhitelist";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "gasPayer";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "receiver";
                  type: "address";
              }, {
                  name: "amount";
                  type: "uint256";
              }];
              name: "getFunds";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [];
              name: "getMyEth";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchainContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "newMessageProxy";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "linkerValue";
                  type: "address";
              }, {
                  name: "messageProxyValue";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newContractManagerOfSkaleManager";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "sender";
                  type: "address";
              }, {
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isSchainOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "isWhitelisted";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "linker";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }, {
                  name: "sender";
                  type: "address";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "removeSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "schainLinks";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }];
          LINKER: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              constant: true;
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "LINKER_ROLE";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "contractReceiver";
                  type: "address";
              }];
              name: "addSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }, {
                  name: "schainContracts";
                  type: "address[]";
              }];
              name: "connectSchain";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "contractManagerOfSkaleManager";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "disconnectSchain";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "mainnetContract";
                  type: "address";
              }];
              name: "hasMainnetContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchain";
              outputs: readonly [{
                  name: "connected";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchainContract";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "contractManagerOfSkaleManagerValue";
                  type: "address";
              }, {
                  name: "messageProxyValue";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newContractManagerOfSkaleManager";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isNotKilled";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "sender";
                  type: "address";
              }, {
                  name: "schainHash";
                  type: "bytes32";
              }];
              name: "isSchainOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "kill";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "newMainnetContract";
                  type: "address";
              }];
              name: "registerMainnetContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "mainnetContract";
                  type: "address";
              }];
              name: "removeMainnetContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "schainName";
                  type: "string";
              }];
              name: "removeSchainContract";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "role";
                  type: "bytes32";
              }, {
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              payable: false;
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "schainLinks";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "bytes32";
              }];
              name: "statuses";
              outputs: readonly [{
                  name: "";
                  type: "uint8";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }];
          MARIONETTE: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "EtherReceived";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "receiver";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "EtherSent";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "bytes";
                  name: "output";
                  type: "bytes";
              }];
              name: "FunctionCallResult";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "ACCESS_VIOLATION";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "IMA_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "PUPPETEER_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "receiver";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "value";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "encodeFunctionCall";
              outputs: readonly [{
                  internalType: "bytes";
                  name: "";
                  type: "bytes";
              }];
              stateMutability: "pure";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address payable";
                  name: "target";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "value";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "execute";
              outputs: readonly [{
                  internalType: "bytes";
                  name: "";
                  type: "bytes";
              }];
              stateMutability: "payable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "owner";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "ima";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address payable";
                  name: "target";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "value";
                  type: "uint256";
              }];
              name: "sendSFuel";
              outputs: readonly [];
              stateMutability: "payable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              stateMutability: "payable";
              type: "receive";
          }];
          MULTISIG_WALLET: readonly [{
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              name: "owners";
              outputs: readonly [{
                  name: "";
                  type: "address";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "owner";
                  type: "address";
              }];
              name: "removeOwner";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "revokeConfirmation";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "address";
              }];
              name: "isOwner";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "uint256";
              }, {
                  name: "";
                  type: "address";
              }];
              name: "confirmations";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "calcMaxWithdraw";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "pending";
                  type: "bool";
              }, {
                  name: "executed";
                  type: "bool";
              }];
              name: "getTransactionCount";
              outputs: readonly [{
                  name: "count";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "dailyLimit";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "lastDay";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "owner";
                  type: "address";
              }];
              name: "addOwner";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "isConfirmed";
              outputs: readonly [{
                  name: "";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "getConfirmationCount";
              outputs: readonly [{
                  name: "count";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              name: "transactions";
              outputs: readonly [{
                  name: "destination";
                  type: "address";
              }, {
                  name: "value";
                  type: "uint256";
              }, {
                  name: "data";
                  type: "bytes";
              }, {
                  name: "executed";
                  type: "bool";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "getOwners";
              outputs: readonly [{
                  name: "";
                  type: "address[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "from";
                  type: "uint256";
              }, {
                  name: "to";
                  type: "uint256";
              }, {
                  name: "pending";
                  type: "bool";
              }, {
                  name: "executed";
                  type: "bool";
              }];
              name: "getTransactionIds";
              outputs: readonly [{
                  name: "_transactionIds";
                  type: "uint256[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "getConfirmations";
              outputs: readonly [{
                  name: "_confirmations";
                  type: "address[]";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "transactionCount";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "_required";
                  type: "uint256";
              }];
              name: "changeRequirement";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "confirmTransaction";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "destination";
                  type: "address";
              }, {
                  name: "value";
                  type: "uint256";
              }, {
                  name: "data";
                  type: "bytes";
              }];
              name: "submitTransaction";
              outputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "_dailyLimit";
                  type: "uint256";
              }];
              name: "changeDailyLimit";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "MAX_OWNER_COUNT";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "required";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "owner";
                  type: "address";
              }, {
                  name: "newOwner";
                  type: "address";
              }];
              name: "replaceOwner";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: false;
              inputs: readonly [{
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "executeTransaction";
              outputs: readonly [];
              payable: false;
              stateMutability: "nonpayable";
              type: "function";
          }, {
              constant: true;
              inputs: readonly [];
              name: "spentToday";
              outputs: readonly [{
                  name: "";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  name: "_owners";
                  type: "address[]";
              }, {
                  name: "_required";
                  type: "uint256";
              }, {
                  name: "_dailyLimit";
                  type: "uint256";
              }];
              payable: false;
              stateMutability: "nonpayable";
              type: "constructor";
          }, {
              payable: true;
              stateMutability: "payable";
              type: "fallback";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  name: "dailyLimit";
                  type: "uint256";
              }];
              name: "DailyLimitChange";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "sender";
                  type: "address";
              }, {
                  indexed: true;
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "Confirmation";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "sender";
                  type: "address";
              }, {
                  indexed: true;
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "Revocation";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "Submission";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "Execution";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "transactionId";
                  type: "uint256";
              }];
              name: "ExecutionFailure";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "sender";
                  type: "address";
              }, {
                  indexed: false;
                  name: "value";
                  type: "uint256";
              }];
              name: "Deposit";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "owner";
                  type: "address";
              }];
              name: "OwnerAddition";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  name: "owner";
                  type: "address";
              }];
              name: "OwnerRemoval";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  name: "required";
                  type: "uint256";
              }];
              name: "RequirementChange";
              type: "event";
          }];
          TOKEN_MANAGER_ERC1155: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "oldValue";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "newValue";
                  type: "address";
              }];
              name: "DepositBoxWasChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnSchain";
                  type: "address";
              }];
              name: "ERC1155TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnSchain";
                  type: "address";
              }];
              name: "ERC1155TokenCreated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "ERC1155TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc1155OnSchain";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  indexed: false;
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "ERC1155TokenReceived";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "AUTOMATIC_DEPLOY_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "TOKEN_REGISTRAR_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetChainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "erc1155OnMainnet";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "erc1155OnSchain";
                  type: "address";
              }];
              name: "addERC1155TokenByOwner";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "newTokenManager";
                  type: "address";
              }];
              name: "addTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract ERC1155OnChain";
                  name: "";
                  type: "address";
              }];
              name: "addedClones";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "automaticDeploy";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "changeDepositBoxAddress";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "clonesErc1155";
              outputs: readonly [{
                  internalType: "contract ERC1155OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "communityLocker";
              outputs: readonly [{
                  internalType: "contract ICommunityLocker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "depositBox";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "deprecatedClonesErc1155";
              outputs: readonly [{
                  internalType: "contract ERC1155OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "exitToMainERC1155";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "exitToMainERC1155Batch";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "hasTokenManager";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newChainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newSchainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initializeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "";
                  type: "uint256[]";
              }, {
                  internalType: "bytes";
                  name: "";
                  type: "bytes";
              }];
              name: "onERC1155BatchReceived";
              outputs: readonly [{
                  internalType: "bytes4";
                  name: "";
                  type: "bytes4";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "operator";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }, {
                  internalType: "bytes";
                  name: "";
                  type: "bytes";
              }];
              name: "onERC1155Received";
              outputs: readonly [{
                  internalType: "bytes4";
                  name: "";
                  type: "bytes4";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "fromChainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "removeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "schainHash";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenManagerLinker";
              outputs: readonly [{
                  internalType: "contract ITokenManagerLinker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              name: "tokenManagers";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetSchainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "id";
                  type: "uint256";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "transferToSchainERC1155";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetSchainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256[]";
                  name: "ids";
                  type: "uint256[]";
              }, {
                  internalType: "uint256[]";
                  name: "amounts";
                  type: "uint256[]";
              }];
              name: "transferToSchainERC1155Batch";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }];
          TOKEN_MANAGER_ERC20: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "oldValue";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "newValue";
                  type: "address";
              }];
              name: "DepositBoxWasChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnSchain";
                  type: "address";
              }];
              name: "ERC20TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnSchain";
                  type: "address";
              }];
              name: "ERC20TokenCreated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "ERC20TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc20OnSchain";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "ERC20TokenReceived";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "AUTOMATIC_DEPLOY_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "TOKEN_REGISTRAR_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetChainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "erc20OnMainChain";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "erc20OnSchain";
                  type: "address";
              }];
              name: "addERC20TokenByOwner";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "newTokenManager";
                  type: "address";
              }];
              name: "addTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract ERC20OnChain";
                  name: "";
                  type: "address";
              }];
              name: "addedClones";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "automaticDeploy";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "changeDepositBoxAddress";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "clonesErc20";
              outputs: readonly [{
                  internalType: "contract ERC20OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "communityLocker";
              outputs: readonly [{
                  internalType: "contract ICommunityLocker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "depositBox";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "deprecatedClonesErc20";
              outputs: readonly [{
                  internalType: "contract ERC20OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "exitToMainERC20";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "hasTokenManager";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newChainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newSchainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initializeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "fromChainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "removeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "schainHash";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenManagerLinker";
              outputs: readonly [{
                  internalType: "contract ITokenManagerLinker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              name: "tokenManagers";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract IERC20Upgradeable";
                  name: "";
                  type: "address";
              }];
              name: "totalSupplyOnMainnet";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetSchainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "transferToSchainERC20";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }];
          TOKEN_MANAGER_ERC721: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "oldValue";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "newValue";
                  type: "address";
              }];
              name: "DepositBoxWasChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnSchain";
                  type: "address";
              }];
              name: "ERC721TokenAdded";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnSchain";
                  type: "address";
              }];
              name: "ERC721TokenCreated";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "ERC721TokenReady";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "chainHash";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnMainChain";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "erc721OnSchain";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "ERC721TokenReceived";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "AUTOMATIC_DEPLOY_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "TOKEN_REGISTRAR_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetChainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "erc721OnMainChain";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "erc721OnSchain";
                  type: "address";
              }];
              name: "addERC721TokenByOwner";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "newTokenManager";
                  type: "address";
              }];
              name: "addTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract ERC721OnChain";
                  name: "";
                  type: "address";
              }];
              name: "addedClones";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "automaticDeploy";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "changeDepositBoxAddress";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "clonesErc721";
              outputs: readonly [{
                  internalType: "contract ERC721OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "communityLocker";
              outputs: readonly [{
                  internalType: "contract ICommunityLocker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "depositBox";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              name: "deprecatedClonesErc721";
              outputs: readonly [{
                  internalType: "contract ERC721OnChain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "exitToMainERC721";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "hasTokenManager";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newChainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newSchainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initializeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "fromChainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "removeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "schainHash";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenManagerLinker";
              outputs: readonly [{
                  internalType: "contract ITokenManagerLinker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              name: "tokenManagers";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "targetSchainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "contractOnMainnet";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "tokenId";
                  type: "uint256";
              }];
              name: "transferToSchainERC721";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }, {
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "transferredAmount";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }];
          TOKEN_MANAGER_ETH: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "address";
                  name: "oldValue";
                  type: "address";
              }, {
                  indexed: false;
                  internalType: "address";
                  name: "newValue";
                  type: "address";
              }];
              name: "DepositBoxWasChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "AUTOMATIC_DEPLOY_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "TOKEN_REGISTRAR_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }, {
                  internalType: "address";
                  name: "newTokenManager";
                  type: "address";
              }];
              name: "addTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "automaticDeploy";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "changeDepositBoxAddress";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "communityLocker";
              outputs: readonly [{
                  internalType: "contract ICommunityLocker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "depositBox";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "disableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "enableAutomaticDeploy";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "ethErc20";
              outputs: readonly [{
                  internalType: "contract IEthErc20";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "amount";
                  type: "uint256";
              }];
              name: "exitToMain";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "hasTokenManager";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newChainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }, {
                  internalType: "contract IEthErc20";
                  name: "ethErc20Address";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "newSchainName";
                  type: "string";
              }, {
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxy";
                  type: "address";
              }, {
                  internalType: "contract ITokenManagerLinker";
                  name: "newIMALinker";
                  type: "address";
              }, {
                  internalType: "contract ICommunityLocker";
                  name: "newCommunityLocker";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "newDepositBox";
                  type: "address";
              }];
              name: "initializeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "fromChainHash";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }, {
                  internalType: "bytes";
                  name: "data";
                  type: "bytes";
              }];
              name: "postMessage";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "removeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "schainHash";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract IEthErc20";
                  name: "newEthErc20Address";
                  type: "address";
              }];
              name: "setEthErc20Address";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "tokenManagerLinker";
              outputs: readonly [{
                  internalType: "contract ITokenManagerLinker";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              name: "tokenManagers";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }];
          TOKEN_MANAGER_LINKER: readonly [{
              anonymous: false;
              inputs: readonly [{
                  indexed: false;
                  internalType: "uint8";
                  name: "version";
                  type: "uint8";
              }];
              name: "Initialized";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "previousAdminRole";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "bytes32";
                  name: "newAdminRole";
                  type: "bytes32";
              }];
              name: "RoleAdminChanged";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleGranted";
              type: "event";
          }, {
              anonymous: false;
              inputs: readonly [{
                  indexed: true;
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "account";
                  type: "address";
              }, {
                  indexed: true;
                  internalType: "address";
                  name: "sender";
                  type: "address";
              }];
              name: "RoleRevoked";
              type: "event";
          }, {
              inputs: readonly [];
              name: "DEFAULT_ADMIN_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_HASH";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "MAINNET_NAME";
              outputs: readonly [{
                  internalType: "string";
                  name: "";
                  type: "string";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "REGISTRAR_ROLE";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "connectSchain";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "disconnectSchain";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleAdmin";
              outputs: readonly [{
                  internalType: "bytes32";
                  name: "";
                  type: "bytes32";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "uint256";
                  name: "index";
                  type: "uint256";
              }];
              name: "getRoleMember";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }];
              name: "getRoleMemberCount";
              outputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "grantRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "hasRole";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "string";
                  name: "schainName";
                  type: "string";
              }];
              name: "hasSchain";
              outputs: readonly [{
                  internalType: "bool";
                  name: "connected";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "address";
                  name: "tokenManager";
                  type: "address";
              }];
              name: "hasTokenManager";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "newMessageProxyAddress";
                  type: "address";
              }, {
                  internalType: "address";
                  name: "linker";
                  type: "address";
              }];
              name: "initialize";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [];
              name: "linkerAddress";
              outputs: readonly [{
                  internalType: "address";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [];
              name: "messageProxy";
              outputs: readonly [{
                  internalType: "contract IMessageProxyForSchain";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract ITokenManager";
                  name: "newTokenManager";
                  type: "address";
              }];
              name: "registerTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "contract ITokenManager";
                  name: "tokenManagerAddress";
                  type: "address";
              }];
              name: "removeTokenManager";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "renounceRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes32";
                  name: "role";
                  type: "bytes32";
              }, {
                  internalType: "address";
                  name: "account";
                  type: "address";
              }];
              name: "revokeRole";
              outputs: readonly [];
              stateMutability: "nonpayable";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "bytes4";
                  name: "interfaceId";
                  type: "bytes4";
              }];
              name: "supportsInterface";
              outputs: readonly [{
                  internalType: "bool";
                  name: "";
                  type: "bool";
              }];
              stateMutability: "view";
              type: "function";
          }, {
              inputs: readonly [{
                  internalType: "uint256";
                  name: "";
                  type: "uint256";
              }];
              name: "tokenManagers";
              outputs: readonly [{
                  internalType: "contract ITokenManager";
                  name: "";
                  type: "address";
              }];
              stateMutability: "view";
              type: "function";
          }];
      }[`TOKEN_MANAGER_${T}`]>

Generated using TypeDoc